package com.kinon.norogamilk.http;


import com.kinon.norogamilk.bean.BaseBean;
import com.kinon.norogamilk.bean.SpecBean;

import java.util.ArrayList;

import io.reactivex.Flowable;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;


/**
 * Created by lhqq on 2017-12-19.
 */

public interface ApiService {

    /**
     * 获取首页幻灯片
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getPictures")
    Call<String> getAd(@Field("code") String code);

    /**
     * 获取商品列表
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getProducts")
    Flowable<BaseBean<ArrayList<SpecBean>>> getGoods(@Field("code") String code);


    /**
     * 会员校验
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getUser")
    Call<String> memberCheck(@Field("code") String code,
                             @Field("phone") String phone);

    /**
     * @param code
     * @param productid 商品id
     * @param amount
     * @param userid    会员id没有传0
     * @return
     */
    @FormUrlEncoded
    @POST("app/saveOrder")
    Call<String> saveOrder(@Field("code") String code,
                           @Field("productid") String productid,
                           @Field("amount") String amount,
                           @Field("userid") String userid);

    /**
     * 补货
     *
     * @param code
     * @param data id,amount的json数据
     * @return
     */
    @FormUrlEncoded
    @POST("app/restock")
    Flowable<BaseBean> restock(@Field("code") String code,
                               @Field("data") String data);

    /**
     * 新补货
     *
     * @param code
     * @param goods
     * @return
     */
    @FormUrlEncoded
    @POST("app/machinePw")
    Call<String> machinePw(@Field("code") String code,
                           @Field("goods") String goods);

    @FormUrlEncoded
    @POST("app/machinePw2")
    Call<String> machinePw2(@Field("code") String code,
                            @Field("pw") String goods);

    /**
     * 查询机器是否需要出货
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getProductByCode")
    Call<String> getProductByCode(@Field("code") String code);

    /**
     * 取货码取货
     *
     * @param code
     * @param pickup
     * @return
     */
    @FormUrlEncoded
    @POST("app/getProductByPickup")
    Call<String> getProductByPickup(@Field("code") String code,
                                    @Field("pickup") String pickup);

    /**
     * 出库后更新订单状态
     *
     * @param orderid
     * @return
     */
    @FormUrlEncoded
    @POST("app/updateOrder")
    Call<String> updateOrder(
            @Field("code") String code, @Field("orderid") String orderid);


    /**
     * 获取会员取货二位维码
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getURL")
    Call<String> getURL(
            @Field("code") String code);


    /**
     * 获取货道信息
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/getGoods")
    Call<String> getRaodInfo(
            @Field("code") String code);

    /**
     * 机器出货
     *
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("app/machineWs")
    Call<String> machineWs(
            @Field("code") String code);

}
